Recently, there have been widely-used standards for video compression techniques. Examples of such standards include H.261 and H.263 by the ITU-T (International Telecommunication Union Telecommunication Standardization Sector), MPEG (Moving Picture Experts Group)-1, MPEG-2, MPEG-4, etc. by the ISO/IEC (International Organization for Standardization/International Electrotechnical Commission), and H.264/MPEG-4 AVC (Advanced Video Coding) by the JVT (Joint Video Team) as a joint team of the ITU-T and the MPEG. Furthermore, the next generation video compression technique is now being studied by the ITU-T, the ISO/IEC, etc.
In general, one of the important elements of a video compression technique is inter-picture prediction involving motion compensation intended to compress the amount of information by reducing temporal redundancies between plural consecutive pictures that make up a video. Here, the inter-picture prediction involving motion compensation is a coding method involving (i) detecting the amount and direction of a motion in a reference picture located forward or backward of a current picture that is to be coded in units of a macroblock or a sub-macroblock (hereinafter also referred to as a “macroblock or the like”), (ii) generating a prediction image, and (iii) coding a difference value between the prediction image and the current picture. It is to be noted that the information indicating how much and to what direction a macroblock or the like in the current picture to be coded is moved in the reference picture located forward or backward of the current picture is referred to as a motion vector. In addition, a picture to be referred to at this time is referred to as a reference picture.
In the decoding of a video stream coded using motion-compensation inter-picture prediction, decoded pictures are held in a frame memory and used as reference pictures in the decoding of the following pictures to be decoded.
In addition, prediction images of macroblocks coded using motion-compensation inter-picture prediction are generated as described below. First, a motion vector in the coded video stream is decoded. A reference pixel area indicated by the motion vector is obtained from a frame memory holding reference pictures. A prediction image is generated by, as necessary, filtering the reference pixel area. In order to generate a prediction image having a sub-pixel accuracy, integer pixels are filtered.
For example, a prediction image having a ½ pixel accuracy is generated using a 6-tap FIR filter (filter coefficients: 1, −5, 20, 20, −5, and 1) that has fixed filter coefficients defined in the H.264 standard. Next, a prediction image having a ¼ pixel accuracy is generated using a 2-tap average-value filter (filter coefficients: ½ and ½) that has fixed filter coefficients defined in the standard. At this time, filter coefficients that have same values (fixed values) irrespective of image characteristics are used to generate prediction images having a sub-pixel accuracy.
On the other hand, a motion compensation technique (hereinafter, also referred to as “motion compensation using variable coefficients”) has been proposed (for example, see NPLs 1, 2, and 3). The motion compensation technique is intended to adaptively change filter coefficients for generating prediction images having a sub-pixel accuracy according to the image characteristics in order to achieve a higher coding efficiency. This motion compensation using variable coefficients has been proposed by the ITU-T, ISO/IEC, etc. as the next generation video compression technique, more specifically as the next generation motion-compensation inter-picture prediction technique.
For example, NPL 1 has proposed a technique for adaptively changing filter coefficients that are used to generate prediction images having a sub-pixel accuracy according to image characteristics, instead of using conventional filter coefficients having fixed values. In addition, for example, NPL 2 has proposed a technique for performing filtering when generating prediction images using, for each of values in the decimal part of each of motion vectors, a different filter coefficient defined in a coded stream. In addition, NPL 3 has proposed a technique for switching filter coefficients that are used for macroblock-based filtering in inter-picture prediction involving motion compensation, focusing on a fact that the optimum filter coefficient varies depending on the places even within a picture.